home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / yacas_alg / yacas_morphos / share / yacas / include / lispevalhash.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-13  |  816 b   |  38 lines

  1. /** \file lispevalhash.h
  2.  *  Storage of executable commands
  3.  *
  4.  */
  5.  
  6. #ifndef __lispevalhash_h__
  7. #define __lispevalhash_h__
  8.  
  9. #include "yacasbase.h"
  10. #include "lispobject.h"
  11. #include "lisphash.h"
  12. #include "evalfunc.h"
  13.  
  14. class LispEnvironment;
  15. // aArguments are ALL the arguments, including the head...
  16. typedef void (*LispEvalCaller)(LispEnvironment& aEnvironment,
  17.                                LispPtr& aResult,
  18.                                LispPtr& aArguments);
  19.  
  20.  
  21. class LispEvaluator : public EvalFuncBase
  22. {
  23. public:
  24.     LispEvaluator(LispEvalCaller aCaller): iCaller(aCaller)
  25.     {
  26.     }
  27.     virtual void Evaluate(LispPtr& aResult,LispEnvironment& aEnvironment,
  28.                           LispPtr& aArguments);
  29. private:
  30.     LispEvalCaller iCaller;
  31. };
  32.  
  33. typedef LispAssociatedHash<LispEvaluator> LispCommands;
  34.  
  35.  
  36.  
  37. #endif
  38.